﻿using System;
using System.Collections;

namespace JSClass
{
	/// <summary>
	/// 
	/**
	* java 의 Vector 와 동일한 기능을 하는 자료구조
	* @author 이진석
	* @version 1.0 2008년 6월 16일 작업
	*/
	/// </summary>
	public class Vector : System.Collections.ArrayList
	{
		/**
		* Construct a new cVector class.
		* @class 자바의 Vector 기능을 그대로 C#로 구현한 모형을 묘사한다.
		* @param {Vector} Vector
		* @constructor 
		*/
        public Vector()
		{
			//
			// TODO: 생성자 논리를 여기에 추가합니다.
			//
		}
		
		/**
		* Vector 내의 지정된 위치에 지정의 요소를 삽입합니다.  
		* @param index 지정의 요소가 삽입되는 인덱스
		* @param element Vector 에 추가되는 요소
		*/
		public void add(int index, Object element)
		{
			this.Insert(index, element);
		}
		/**
		* Vector 의 말미에 지정의 요소를 추가합니다. 
		* @param o Vector 에 추가되는 요소
		*/
		public void add(Object o)
		{
			this.Add(o);
		}
		/**
		* 지정된 인덱스의 요소를 돌려줍니다.
		* @param index Vector 의 인덱스
		* @return 지정된 인덱스의 요소
		*/
		public Object elementAt(int index)
		{
			return this[index];
		}
		/**
		* Vector 의 지정된 인덱스에, 지정된 오브젝트를 요소로서 삽입합니다.
		* @param obj 삽입되는 요소
		* @param index 새로운 요소를 삽입하는 위치
		*/
		public void insertElementAt(Object obj, int index)
		{
			this.Insert(index, obj);
		}
		/**
		* Vector 내의 지정의 위치에 있는 요소를 삭제합니다.
		* @param index 삭제되는 요소의 인덱스
		*/
		public void remove(int index)
		{
			this.RemoveAt(index);
		}
		/**
		* Vector 의 요소수를 돌려줍니다. 
		*/
		public int size()
		{
			return this.Count;
		}
	}
}
